From bc7d627f61a4d055b19d0679b3a4c128b7afcfda Mon Sep 17 00:00:00 2001 From: dujinkim Date: Wed, 28 May 2025 17:29:43 +0000 Subject: (대표님) admin / api / components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/[lng]/admin/page.tsx | 132 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 app/[lng]/admin/page.tsx (limited to 'app/[lng]/admin/page.tsx') diff --git a/app/[lng]/admin/page.tsx b/app/[lng]/admin/page.tsx new file mode 100644 index 00000000..04679342 --- /dev/null +++ b/app/[lng]/admin/page.tsx @@ -0,0 +1,132 @@ +// app/admin/page.tsx +'use client' + +import { useState } from 'react' + +export default function AdminPage() { + const [isLoading, setIsLoading] = useState(false) + const [lastResult, setLastResult] = useState(null) + + + const clearTestData = async () => { + const confirmation = window.confirm( + '⚠️ 정말로 모든 테스트 데이터를 삭제하시겠습니까?\n\n삭제될 데이터:\n- Forms\n- Form Metas\n- Form Entries\n- Tags\n\n이 작업은 되돌릴 수 없습니다!' + ) + + if (!confirmation) return + + setIsLoading(true) + setLastResult(null) + + try { + const response = await fetch('/api/admin/clear-test-data', { + method: 'DELETE', + }) + + const result = await response.json() + + if (result.success) { + setLastResult(`✅ 성공: ${result.message}`) + console.log('Deleted counts:', result.deleted) + } else { + setLastResult(`❌ 실패: ${result.error}`) + console.error('Error details:', result.details) + } + } catch (error) { + setLastResult(`❌ 네트워크 오류: ${error}`) + console.error('Network error:', error) + } finally { + setIsLoading(false) + } + } + + const checkApiStatus = async () => { + try { + const response = await fetch('/api/admin/clear-test-data') + const result = await response.json() + setLastResult(`ℹ️ API 상태: ${result.message}`) + } catch (error) { + setLastResult(`❌ API 체크 실패: ${error}`) + } + } + + return ( +
+
+
+ {/* 헤더 */} +
+

+ 🔧 개발 관리자 패널 +

+

+ 테스트 데이터 관리 및 개발 도구 +

+
+ Development Mode Only +
+
+ + {/* 테스트 데이터 삭제 섹션 */} +
+

+ 🗑️ 테스트 데이터 삭제 +

+ +
+

삭제될 테이블:

+
    +
  • • forms (양식 정보)
  • +
  • • form_metas (양식 메타데이터)
  • +
  • • form_entries (양식 입력 데이터)
  • +
  • • tags (태그 정보)
  • +
+
+ +
+ + + +
+
+ + {/* 결과 표시 */} + {lastResult && ( +
+

실행 결과:

+

+ {lastResult} +

+
+ )} + + {/* 추가 정보 */} +
+

📋 사용법:

+
+

• 이 페이지는 개발 환경에서만 접근 가능합니다

+

• 삭제 전 반드시 확인 창이 표시됩니다

+

• API 엔드포인트: /api/admin/clear-test-data

+
+
+
+
+
+ ) +} \ No newline at end of file -- cgit v1.2.3